#!/usr/bin/python
# -*- coding:utf-8 -*-
# @author  : micah
# @time    :  
# @function: 
# @version :

def test(*args, **kwargs):
    print(args)
    print(kwargs)
    """
    不定长参数在声明可以用*/**号
    在函数调用传递参数的时候可以使用*/**
    
    打印的时候不能添加*
    """


test(1, 2, 3, 4, 5, a=1, b=2, c=3)

a, *c = 1, 2, 3
print(a, c)


# 如果一个函数中有一个单独的*，那么在这个单独的*的后面的参数必须使用命名参数。
def test_2(a, *, b=2, c=3):
    print(a, b, c)


# 为了保证参数传递不出错，使用单独的*对*后面的参数强制使用命名参数传递
test_2(1, b=1, c=2)
